博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery-file-upload demo
阅读量:4589 次
发布时间:2019-06-09

本文共 3754 字,大约阅读时间需要 12 分钟。

下载地址:

文档地址:

本文只是一个demo,实现功能也很简单:点击一个上传按钮,用户选择图片,图片Ajax上传到后台存储到硬盘,返回一个连接,页面上显示用户上传的图片。

(jquery-file-upload多文件上传可以做的非常漂亮,我这里有点大材小用了)

注:demo 页面为jsp,服务端为Java springMVC。

页面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
file upload demo
Select file.

如果要自己写css

那么只需以下四个js:jquery.min.jsjquery.ui.widget.jsjquery.iframe-transport.jsjquery.fileupload.js

配置:对id为fileupload 的file input 进行fileupload实例化,url即为图片要上传到服务端的后台链接,也可以通过html5的属性 data-url 直接在input中给,input的name要给,或者通过配置 paramName属性也是可以的。progressall是配置进度条的,done是上传到后台返回后的事件。

Java代码:

 

import java.io.IOException;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import com.isoftstone.veco.common.base.controller.BaseController;import com.isoftstone.veco.common.upload.FileUploadHandler;@RequestMapping("/upload")@Controllerpublic class UploadController extends BaseController{    @RequestMapping("/uploadImg.do")    public @ResponseBody    String uploadMaterialImg(@RequestParam("imgFile") MultipartFile multipartFile)    {        String resp = null;        if (multipartFile != null)        {            try            {                byte[] file = multipartFile.getBytes();                String dir = "/test";                String imgId = FileUploadHandler.uploadImg(file, dir);                resp = FileUploadHandler.UPLOAD_CONFIG.getImgVirtualDir() + "?" + FileUploadHandler.UPLOAD_CONFIG.getDownloadParamName() + "="                        + imgId;            } catch (IOException e)            {                e.printStackTrace();            }        }        return resp;    }}

 

try中间的上传逻辑就不详细写了,controller这里写的有点挫,应该返回一个json格式的,判断上传是否成功,给用户反馈的,不过我这里只是一个demo,哈哈 补充:增加对上传图片格式的验证,以及对图片大小的验证,配置如下
$('#fileupload').fileupload({                url: url,                paramName:"imgFile",                acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,                maxFileSize: 5000000, // 5 MB                dataType: 'text',                done: function (e, data) {
console.dir(data); $(".imgView img").attr('src','${contextPath}'+data.result); $("#progress").hide(); $(".imgView").show(); }, progressall: function (e, data) { console.dir(data); var progress = parseInt(data.loaded / data.total * 100, 10); $('#progress .progress-bar').css( 'width', progress + '%' ); }, messages: { acceptFileTypes: '图片类型不合法 ', maxFileSize: '图片大小超过限制' } }).on('fileuploadprocessalways', function (e, data) { var index = data.index, file = data.files[index]; if (file.error) { alert(file.error); } });
 

注: acceptFileTypes, maxFileSize这两个属性是jquery-file-upload中jquery.fileupload-validate.js中的,需要在进入两个js文件:

jquery.fileupload-validate.js和jquery.fileupload-process.js

在通过注册上传后台之前的事件fileuploadprocessalways 来获取错误信息,如果不知道data中是什么可以通过 console.dir(data);在浏览器debug控制台中查看

 
 

 

转载于:https://www.cnblogs.com/china2k/p/3920623.html

你可能感兴趣的文章
[IE编程] 多页面基于IE内核浏览器的代码示例
查看>>
对不同型号开发板的认识及环境搭建
查看>>
web.xml配置详解之listener
查看>>
tarjan模板
查看>>
请让本题永远沉睡于此(东方化改题+给的标程)
查看>>
fenby C语言 p7
查看>>
当下大部分互联网创业公司为什么都愿意采用增量模型来做开发?
查看>>
第二第三周暑期集训总结
查看>>
C#屏幕截图
查看>>
JQuery模仿a标签的点击事件
查看>>
github hexo 搭建博客
查看>>
JS调用百度地图API获取地理位置
查看>>
MSSQL 2005/2008 日志压缩清理方法小结
查看>>
BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)
查看>>
BZOJ 4260 Codechef REBXOR(字典树)
查看>>
idea使用maven逆向mybitis的文件
查看>>
宿舍助手app——个人工作第二天
查看>>
线段树(hdu 2795)
查看>>
4种方法解决为 li列表 添加事件问题
查看>>
codevs3044 线段树+扫描线
查看>>